#pragma warning disable 108
using System;
using System.Runtime.InteropServices;
using System.Collections.Generic;
using Cephei;
using Cephei.Generic;
using Cephei.QL.Times;
using Cephei.QL.Indexes;
using Cephei.QL;
using Cephei.QL.Instruments;
namespace Cephei.QL.Experimental.Amortizingbonds
{
     // <summary> 
	// ! amortizing CMS-rate bond
	// </summary>
    [Guid ("68E24438-FD38-44c3-B8A7-E8A628970BFC"),ComVisible(true)]
	public interface IAmortizingCmsRateBond : Cephei.QL.Instruments.IBond
	{
		///////////////////////////////////////////////////////////////
        // Methods
        //
    }

    // <summary> 
	// ! amortizing CMS-rate bond Factory
	// </summary>
   	[ComVisible(true)]
    public interface IAmortizingCmsRateBond_Factory // : Collection_Factory<IAmortizingCmsRateBond, ICell<IAmortizingCmsRateBond>>
    {
        ///////////////////////////////////////////////////////////////
        // Factory methods
        //
        
	    IAmortizingCmsRateBond Create (UInt32 settlementDays, Cephei.IVector<Double> notionals, Cephei.QL.Times.ISchedule schedule, Cephei.QL.Indexes.ISwapIndex index, Cephei.QL.Times.IDayCounter paymentDayCounter, Microsoft.FSharp.Core.FSharpOption<QL.Times.BusinessDayConventionEnum> paymentConvention, Microsoft.FSharp.Core.FSharpOption<UInt32> fixingDays, Microsoft.FSharp.Core.FSharpOption<Cephei.IVector<Double>> gearings, Microsoft.FSharp.Core.FSharpOption<Cephei.IVector<Double>> spreads, Microsoft.FSharp.Core.FSharpOption<Cephei.IVector<Double>> caps, Microsoft.FSharp.Core.FSharpOption<Cephei.IVector<Double>> floors, Microsoft.FSharp.Core.FSharpOption<Boolean> inArrears, Microsoft.FSharp.Core.FSharpOption<DateTime> issueDate, Cephei.QL.IPricingEngine QL_Pricer);
    }
}

